import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()], // 必须的 Vue 插件
  // 基础路径（部署到子目录时需要）
  base: process.env.NODE_ENV === 'production' ? '/your-subpath/' : '/',
  // 静态资源目录
  publicDir: 'public',
  // 构建选项
  build: {
    outDir: 'dist', // 输出目录
    assetsDir: 'assets', // 静态资源存放目录
    sourcemap: true, // 生产环境是否生成 source map
    rollupOptions: {
      // 代码分割策略
      output: {
        manualChunks: {
          'vendor': ['vue', 'axios'], // 将指定依赖打包为 vendor 文件
        }
      }
    }
  },

  // 开发服务器配置
  server: {
    host: '0.0.0.0', // 允许外部访问
    port: 3000,
    open: true, // 自动打开浏览器
    proxy: {
      // API 代理配置（解决开发环境跨域问题）
      '/api': {
        target: 'http://127.0.0.1:19013',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  },

  // 路径别名配置
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
      'components': path.resolve(__dirname, './src/components'),
      'api': path.resolve(__dirname, './src/api')
    }
  },

  // 优化选项
  optimizeDeps: {
    include: ['axios'] // 显式包含需要预构建的依赖
  }
})
